package org.swan.web.namespace.mapper;

import org.apache.ibatis.annotations.*;
import org.swan.web.namespace.bean.NamespaceBean;
import java.util.List;
import java.util.Optional;

public interface NamespaceMapper {

    @Insert("insert into namespace ( key , name , description , status ) VALUES ( #{key} , #{name} , #{description} , #{status})")
    @Options(useGeneratedKeys = true, keyProperty = "namespaceId")
    long add(NamespaceBean ub);

    @Select("select * from namespace where namespace_id = #{id}")
    Optional<NamespaceBean> getById(@Param("id") long id);

    @Update("update namespace set key = #{key} ,name = #{name} ,description = #{description} ,status = #{status}  where namespace_id = #{namespaceId}  ")
    long updateById(NamespaceBean NamespaceBean);

    @Delete("delete from namespace where namespace_id = #{NamespaceId}")
    long deleteById(@Param("NamespaceId") long NamespaceId);

    @Select("select * from namespace limit #{rows} offset #{offset}")
    List<NamespaceBean> list(@Param("offset") int offset, @Param("rows") int rows);
}
